import axios from 'axios'
import { Toast } from 'vant'
/* 定义 baseURL -- 请求后端接口的基准地址
 * 适应不同环境请求不同接口
*/
const baseURL = process.env.NODE_ENV ===
'development'
  ? 'http://quanzhan.site:3000'
  : 'http://www.test-site.com'

/* 创建 axios 实例 */
const service = axios.create({
  baseURL,
  // 如果请求超过 `timeout` 的时间，请求将被中断
  timeout: 10000,
})

/* 拦截请求 */
service.interceptors.request.use(config => {
  // 加载提示
  Toast.loading({
    message: '加载中',
    duration: 0, // 展示时长(ms)，值为 0 时，toast 不会消失
  })

  // 添加请求头中的 token 认证数据
  // TODO.........
  return config
  //
})

/* 拦截响应 */
service.interceptors.response.use(function(resData) {
  // 停止加载提示（对响应数据做点什么）
  Toast.clear()
  /*
   * 响应数据处理：根据前后端接口规范来处理数据结构。
   * resData.data 中保存的是后端响应主体的内容。
   * 后端与前端有交互规范，返回的是 JSON 格式的对象，
   * 在对象中当 code 为 200 时，可以从 data 中获取实际
   * 使用的数据，如果 code 不为 200，则可以从 message 中
   * 获取操作错误相关信息。
   */
  if (resData.status === 200) {
    console.log(resData)
    // return response.data
    if (resData.data.code === 200) {
      return resData.data.data
    }
  }
  // return Promise.reject(new Error('接口请求异常...'))
})
export default service
